package com.xucy.springboot.designmodel.structural.decorator;

/**
 * @Author xucy
 * @Date 2019-07-18 09:48
 * @Description 装饰者模式 io流-bufferedreader  spring中 transactionAwareCacheDecorator  mybatis -cache类
 *   假设有这样的一个场景。现在有两种饼，一种煎饼，一种手抓饼。他们都可以往上面加额外的食材，比如鸡蛋，香肠。
 *     这时候可以给他们设置装饰者，鸡蛋香肠就是煎饼和手抓饼的装饰者。
 **/

public class Test {

    public static void main(String[] args) {
        Cake cake=new HandCake();
        Cake cake1=new JianCake();
        //我是手抓饼加一根火腿加一个鸡蛋加一个鸡蛋花了12  (可以一直往上加东西)
        FoodDecoration foodDecoration=new EggDecoration(new EggDecoration(new HamDecoration(cake)));
        //我是煎饼加一根火腿加一个鸡蛋加一个鸡蛋花了13  (可以一直往上加东西)
        FoodDecoration foodDecoration1=new EggDecoration(new EggDecoration(new HamDecoration(cake1)));

        System.out.println(foodDecoration.description()+"花了"+foodDecoration.cost());
        System.out.println(foodDecoration1.description()+"花了"+foodDecoration1.cost());

    }
}
